<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PxConvexFlag Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(initResizable);
/* @license-end */</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="PhysXLogoBlack.png"/></td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('structPxConvexFlag.html','');});
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="structPxConvexFlag-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">PxConvexFlag Struct Reference<div class="ingroups"><a class="el" href="group__cooking.html">Cooking</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>Flags which describe the format and behavior of a convex mesh.  
 <a href="structPxConvexFlag.html#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="PxConvexMeshDesc_8h_source.html">PxConvexMeshDesc.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a4b7bd21fa96c72b320a39e880208b4b6"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6">Enum</a> { <br />
&#160;&#160;<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6a18b6c42727636f294561c735de5dc37b">e16_BIT_INDICES</a> = (1&lt;&lt;0), 
<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6ad3153afeb45ae6488b40fc4698919c6b">eCOMPUTE_CONVEX</a> = (1&lt;&lt;1), 
<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6a12c7c442cadd1e3474fc613944981c44">eCHECK_ZERO_AREA_TRIANGLES</a> = (1&lt;&lt;2), 
<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6ae10437ca01f341cb3afff0bd2c40529d">eQUANTIZE_INPUT</a> = (1 &lt;&lt; 3), 
<br />
&#160;&#160;<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6a10a876ecefb45e1c7dbaec2afed5c3ad">eDISABLE_MESH_VALIDATION</a> = (1 &lt;&lt; 4), 
<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6a62cbe73f95f10cb93b5d471affef7c89">ePLANE_SHIFTING</a> = (1 &lt;&lt; 5), 
<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6ac694e25cda4aa49e1afb054b08bfc207">eFAST_INERTIA_COMPUTATION</a> = (1 &lt;&lt; 6), 
<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6a8126f89c7d2dac99246261ca6a7ae067">eGPU_COMPATIBLE</a> = (1 &lt;&lt; 7), 
<br />
&#160;&#160;<a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6a99ab52dd1e60d72bc99834e1b8093d78">eSHIFT_VERTICES</a> = (1 &lt;&lt; 8)
<br />
 }</td></tr>
<tr class="separator:a4b7bd21fa96c72b320a39e880208b4b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Flags which describe the format and behavior of a convex mesh. </p>
</div><h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a4b7bd21fa96c72b320a39e880208b4b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4b7bd21fa96c72b320a39e880208b4b6">&#9670;&nbsp;</a></span>Enum</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="structPxConvexFlag.html#a4b7bd21fa96c72b320a39e880208b4b6">PxConvexFlag::Enum</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6a18b6c42727636f294561c735de5dc37b"></a>e16_BIT_INDICES&#160;</td><td class="fielddoc"><p>Denotes the use of 16-bit vertex indices in PxConvexMeshDesc::triangles or <a class="el" href="classPxConvexMeshDesc.html#a1b710dc3c2ef759a6bef8bd888e1ecf8" title="Polygons data in PxBoundedData format. ">PxConvexMeshDesc::polygons</a>. (otherwise, 32-bit indices are assumed) </p><dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxConvexMeshDesc.html#a4e760fc52d1f0f9e55c919320bed1cef" title="Polygon indices data in PxBoundedData format. ">PxConvexMeshDesc.indices</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6ad3153afeb45ae6488b40fc4698919c6b"></a>eCOMPUTE_CONVEX&#160;</td><td class="fielddoc"><p>Automatically recomputes the hull from the vertices. If this flag is not set, you must provide the entire geometry manually.</p>
<dl class="section note"><dt>Note</dt><dd>There are two different algorithms for hull computation, please see <a class="el" href="structPxConvexMeshCookingType.html" title="Enumeration for convex mesh cooking algorithms. ">PxConvexMeshCookingType</a>.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxConvexMeshCookingType.html" title="Enumeration for convex mesh cooking algorithms. ">PxConvexMeshCookingType</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6a12c7c442cadd1e3474fc613944981c44"></a>eCHECK_ZERO_AREA_TRIANGLES&#160;</td><td class="fielddoc"><p>Checks and removes almost zero-area triangles during convex hull computation. The rejected area size is specified in <a class="el" href="structPxCookingParams.html#aec2fbb426b8c0bb2daee1e31b8e2adc2" title="Zero-size area epsilon used in convex hull computation. ">PxCookingParams::areaTestEpsilon</a>. </p>
<dl class="section note"><dt>Note</dt><dd>This flag is only used in combination with eCOMPUTE_CONVEX.</dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="structPxCookingParams.html" title="Structure describing parameters affecting mesh cooking. ">PxCookingParams</a> <a class="el" href="structPxCookingParams.html#aec2fbb426b8c0bb2daee1e31b8e2adc2" title="Zero-size area epsilon used in convex hull computation. ">PxCookingParams::areaTestEpsilon</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6ae10437ca01f341cb3afff0bd2c40529d"></a>eQUANTIZE_INPUT&#160;</td><td class="fielddoc"><p>Quantizes the input vertices using the k-means clustering. </p>
<dl class="section note"><dt>Note</dt><dd>The input vertices are quantized to <a class="el" href="classPxConvexMeshDesc.html#a8dc525326a4835f94311f4e44ca219f2" title="Maximum number of vertices after quantization. The quantization is done during the vertex cleaning ph...">PxConvexMeshDesc::quantizedCount</a> see <a href="http://en.wikipedia.org/wiki/K-means_clustering">http://en.wikipedia.org/wiki/K-means_clustering</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6a10a876ecefb45e1c7dbaec2afed5c3ad"></a>eDISABLE_MESH_VALIDATION&#160;</td><td class="fielddoc"><p>Disables the convex mesh validation to speed-up hull creation. Please use separate validation function in checked/debug builds. Creating a convex mesh with invalid input data without prior validation may result in undefined behavior. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classPxCooking.html#aea8a3c270cc6db602ad250c82c1225bc" title="Verifies if the convex mesh is valid. Prints an error message for each inconsistency found...">PxCooking::validateConvexMesh</a> </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6a62cbe73f95f10cb93b5d471affef7c89"></a>ePLANE_SHIFTING&#160;</td><td class="fielddoc"><p>Enables plane shifting vertex limit algorithm. </p>
<p>Plane shifting is an alternative algorithm for the case when the computed hull has more vertices than the specified vertex limit.</p>
<p>The default algorithm computes the full hull, and an OBB around the input vertices. This OBB is then sliced with the hull planes until the vertex limit is reached.The default algorithm requires the vertex limit to be set to at least 8, and typically produces results that are much better quality than are produced by plane shifting.</p>
<p>When plane shifting is enabled, the hull computation stops when vertex limit is reached. The hull planes are then shifted to contain all input vertices, and the new plane intersection points are then used to generate the final hull with the given vertex limit.Plane shifting may produce sharp edges to vertices very far away from the input cloud, and does not guarantee that all input vertices are inside the resulting hull.However, it can be used with a vertex limit as low as 4. </p>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6ac694e25cda4aa49e1afb054b08bfc207"></a>eFAST_INERTIA_COMPUTATION&#160;</td><td class="fielddoc"><p>Inertia tensor computation is faster using SIMD code, but the precision is lower, which may result in incorrect inertia for very thin hulls. </p>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6a8126f89c7d2dac99246261ca6a7ae067"></a>eGPU_COMPATIBLE&#160;</td><td class="fielddoc"><p>Convex hulls are created with respect to GPU simulation limitations. Vertex limit is set to 64 and vertex limit per face is internally set to 32. </p>
<dl class="section note"><dt>Note</dt><dd>Can be used only with eCOMPUTE_CONVEX flag. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="a4b7bd21fa96c72b320a39e880208b4b6a99ab52dd1e60d72bc99834e1b8093d78"></a>eSHIFT_VERTICES&#160;</td><td class="fielddoc"><p>Convex hull input vertices are shifted to be around origin to provide better computation stability. It is recommended to provide input vertices around the origin, otherwise use this flag to improve numerical stability. </p>
<dl class="section note"><dt>Note</dt><dd>Is used only with eCOMPUTE_CONVEX flag. </dd></dl>
</td></tr>
</table>

</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="PxConvexMeshDesc_8h_source.html">PxConvexMeshDesc.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.14-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="structPxConvexFlag.html">PxConvexFlag</a></li>
    <li class="footer">Copyright &copy; 2008-2021 NVIDIA Corporation, 2788 San Tomas Expressway, Santa Clara, CA 95051 U.S.A. All rights reserved. <a href="http://www.nvidia.com ">www.nvidia.com</a></li>
  </ul>
</div>
</body>
</html>
